import logging
import sys
from pathlib import Path
from rich.logging import RichHandler


def configure_logs_to_file(log_file_path: str):
    """
    配置 Python 的 logging 模块，使其将所有日志输出到指定文件。
    该函数会移除所有已有的处理器（包括控制台处理器），并添加一个 FileHandler。
    """
    # 确保日志文件的目录存在
    log_path = Path(log_file_path)
    log_path.parent.mkdir(parents=True, exist_ok=True)

    # 获取根日志记录器
    logger = logging.getLogger()
    for handler in logger.handlers[:]:
        logger.removeHandler(handler)
    # 创建一个文件处理器，以追加模式写入
    file_handler = logging.FileHandler(log_path, mode='a', encoding='utf-8')
    # 设置日志格式（文件中的格式可以简单、标准化）
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    file_handler.setFormatter(formatter)
    # 将文件处理器添加到根日志记录器
    logger.addHandler(file_handler)
    # 设置全局的日志级别
    logger.setLevel(logging.DEBUG)
    # 打印一条确认信息到标准错误(stderr)，这样不会影响我们的 Rich 进度条
    print(f"✅ 所有日志已配置为写入文件: {log_path.resolve()}", file=sys.stderr)

